<?php

namespace App\Http\Controllers\API;

use App\Http\Requests\API\PayRequest;
use App\Models\Order;

class PayController extends Controller
{
    public function store(PayRequest $request)
    {
        //从网页传入price:支付价格， istype:支付渠道：1-支付宝；2-微信支付
        $istype = 2;
        $price_type = $request->price;
        switch ($price_type) {
            case 1:
                $price = 9.9;
                break;
            case 2:
                $price = 39.9;
                break;
            case 3:
                $price = 99;
                break;
            default:
                $price = 99;
        }

        $orderuid = $this->my->id;       //此处传入您网站用户的用户名，方便在paysapi后台查看是谁付的款，强烈建议加上。可忽略。

        //校验传入的表单，确保价格为正常价格（整数，1位小数，2位小数都可以），支付渠道只能是1或者2，orderuid长度不要超过33个中英文字。

        //此处就在您服务器生成新订单，并把创建的订单号传入到下面的orderid中。
        $goodsname = "阅读天数";
        $orderid = time().rand(1111,9999);    //每次有任何参数变化，订单号就变一个吧。
        $uid = '0a996238584bbbec59926479';//"此处填写PaysApi的uid";
        $token = 'bf04b7e5ae12bdd63daee2ef9dce5e1a';//"此处填写PaysApi的Token";
        $return_url = 'http://mini.hsnewmedia.cn';//url('api/orders');
        $notify_url = url('api/orders');//'http://mini.hsnewmedia.cn';

        $key = md5($goodsname. $istype . $notify_url . $orderid . $orderuid . $price . $return_url . $token . $uid);
        //经常遇到有研发问为啥key值返回错误，大多数原因：1.参数的排列顺序不对；2.上面的参数少传了，但是这里的key值又带进去计算了，导致服务端key算出来和你的不一样。

        Order::create([
            'user_id' => $this->my->id,
            'price' => $price,
            'key' => $key,
            'order_id' => $orderid,
        ]);

        $returndata['goodsname'] = $goodsname;
        $returndata['istype'] = $istype;
        $returndata['key'] = $key;
        $returndata['notify_url'] = $notify_url;
        $returndata['orderid'] = $orderid;
        $returndata['orderuid'] =$orderuid;
        $returndata['price'] = $price;
        $returndata['return_url'] = $return_url;
        $returndata['uid'] = $uid;

        return \Response::success(['key' => $returndata]);
    }
}
